/**
 * <p>Longest common subsequence.</p>
 *
 * <p>Please note that subsequence is different from substring. The longest common substring problem can be solved
 * in linear time using suffix tree.</p>
 *
 * <p>Longest common subsequence problem can be solved in $O(mn)$ time using dynamic programming.</p>
 *
 * <p>Example: the lcs of ABCBDAB and BDCABA is teh subsequence BCBA.</p>
 *
 */
package net.tp.algo.lcs;